.\" Man page generated from reStructuredText.
.
.TH "CEPH-AUTHTOOL" "8" "Mar 12, 2022" "dev" "Ceph"
.SH NAME
ceph-authtool \- ceph keyring manipulation tool
.
.nr rst2man-indent-level 0
.
.de1 rstReportMargin
\\$1 \\n[an-margin]
level \\n[rst2man-indent-level]
level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
-
\\n[rst2man-indent0]
\\n[rst2man-indent1]
\\n[rst2man-indent2]
..
.de1 INDENT
.\" .rstReportMargin pre:
. RS \\$1
. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
. nr rst2man-indent-level +1
.\" .rstReportMargin post:
..
.de UNINDENT
. RE
.\" indent \\n[an-margin]
.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
.nr rst2man-indent-level -1
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.SH 提纲
.nf
\fBceph\-authtool\fP \fIkeyringfile\fP
[ \-l | \-\-list ]
[ \-p | \-\-print\-key ]
[ \-C | \-\-create\-keyring ]
[ \-g | \-\-gen\-key ]
[ \-\-gen\-print\-key ]
[ \-\-import\-keyring \fIotherkeyringfile\fP ]
[ \-n | \-\-name \fIentityname\fP ]
[ \-a | \-\-add\-key \fIbase64_key\fP ]
[ \-\-cap \fIsubsystem\fP \fIcapability\fP ]
[ \-\-caps \fIcapfile\fP ]
[ \-\-mode \fImode\fP ]
.fi
.sp
.SH 描述
.sp
\fBceph\-authtool\fP 工具用于创建、
查看和修改 Ceph 密钥环文件。密钥环文件内存储着一或多个 Ceph 认证密钥、
可能还有被授予的能力。每个密钥都与其类型名关联，
格式为 \fB{client,mon,mds,osd}.name\fP 。
.sp
\fB警告：\fP 在私钥保护得当的前提下，
Ceph 能提供认证和防中间人攻击的保护。
然而，传输中的数据是未加密的，
这些数据中可能就有配置密钥的消息。
此系统意在运行于可信环境中。
.SH 选项
.INDENT 0.0
.TP
.B \-l, \-\-list
列出密钥环内的所有密钥及其能力
.UNINDENT
.INDENT 0.0
.TP
.B \-p, \-\-print\-key
打印指定条目的已编码密钥，它适合作为 \fBmount \-o secret=\fP
的参数
.UNINDENT
.INDENT 0.0
.TP
.B \-C, \-\-create\-keyring
创建新密钥环，覆盖已有密钥环文件
.UNINDENT
.INDENT 0.0
.TP
.B \-g, \-\-gen\-key
为指定实体名生成新私钥
.UNINDENT
.INDENT 0.0
.TP
.B \-\-gen\-print\-key
为指定条目（ entityname ）生成新密钥，不会修改密钥环文件（
keyringfile ），只打印到标准输出。
.UNINDENT
.INDENT 0.0
.TP
.B \-\-import\-keyring *secondkeyringfile*
把此选项所指定密钥环的内容导入密钥环（ keyringfile ）
.UNINDENT
.INDENT 0.0
.TP
.B \-n, \-\-name *name*
指定要操作的条目名（ entityname ）
.UNINDENT
.INDENT 0.0
.TP
.B \-a, \-\-add\-key *base64_key*
把编码好的密钥加进密钥环
.UNINDENT
.INDENT 0.0
.TP
.B \-\-cap *subsystem* *capability*
设置指定子系统的能力
.UNINDENT
.INDENT 0.0
.TP
.B \-\-caps *capsfile*
在所有子系统内设置与给定密钥相关的所有能力
.UNINDENT
.INDENT 0.0
.TP
.B \-\-mode *mode*
给密钥环文件设置想要的文件模式，如 0644 ，默认是 0600 。
.UNINDENT
.SH 能力
.sp
subsystem 代表 Ceph 子系统的名字： \fBmon\fP 、 \fBmds\fP 、或
\fBosd\fP 。
.sp
能力是一个字符串，描述了允许此用户干什么。
格式为逗号分隔的允许声明列表，
此声明包含一或多个 rwx （分别表示读、写、执行权限）。
\fBallow *\fP 将在指定子系统下授予完整的超级用户权限。
.sp
例如：
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
# 可读、写、执行对象
osd = "allow rwx"

# 可访问 MDS 服务器
mds = "allow"

# 可更改集群状态（即它是服务器守护进程）
mon = "allow rwx"
.ft P
.fi
.UNINDENT
.UNINDENT
.sp
被限定到单个存储池的 librados 用户的能力大致如此：
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
mon = "allow r"

osd = "allow rw pool foo"
.ft P
.fi
.UNINDENT
.UNINDENT
.sp
一个 RBD 客户端有一个存储池的读权限和另一个存储池的读写权限：
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
mon = "allow r"

osd = "allow class\-read object_prefix rbd_children, allow pool templates r class\-read, allow pool vms rwx"
.ft P
.fi
.UNINDENT
.UNINDENT
.sp
权限最小化的文件系统客户端，其能力大致如此：
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
mds = "allow"

osd = "allow rw pool data"

mon = "allow r"
.ft P
.fi
.UNINDENT
.UNINDENT
.SH OSD 能力
.sp
一般来说， OSD 能力遵循以下语法：
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
osdcap  := grant[,grant...]
grant   := allow (match capspec | capspec match)
match   := [ pool[=]<poolname> | object_prefix <prefix>
            | namespace[=]<rados\-namespace>
            | tag <application\-name> <key>=<value> ]
capspec := * | [r][w][x] [class\-read] [class\-write]
.ft P
.fi
.UNINDENT
.UNINDENT
.sp
capspec 决定了此实体可执行哪些操作：
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
r           = 可读取对象
w           = 可写入对象
x           = 可调用任何类方法（等同于 class\-read 、 class\-write ）
class\-read  = 可调用读数据的类方法
class\-write = 可调用写数据的类方法
* 或 all    = 等价于 rwx ，另外还可运行 OSD 管理命令，即 ceph osd tell ...
.ft P
.fi
.UNINDENT
.UNINDENT
.sp
匹配规则限制了授权是基于被访问存储池的，
客户端满足匹配条件时授权会叠加。
例如，假设客户端的 OSD 能力为： "allow r object_prefix prefix, allow w pool foo, allow x pool bar" ，那么它有 foo 存储池的读写权限（ rw ）、有 bar 存储池的读和执行权限（ rx ）、还有任意存储池中以 prefix 打头的对象的读（ r ）权限。
.SH 能力文件的格式
.sp
能力配置文件是格式化的零或多个键值对，每条一行。键和值以 \fB=\fP
分隔，且值内包含空格时必须用 \fB\(aq\fP 或 \fB"\fP 包起来。键是某个
Ceph 子系统（ \fBosd\fP 、 \fBmds\fP 、 \fBmon\fP ），值是能力字符串（见上文）。
.SH 实例
.sp
给 client.foo 生成密钥并新建密钥环、且文件模式为 0644 ：
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
ceph\-authtool \-C \-n client.foo \-\-gen\-key keyring \-\-mode 0644
.ft P
.fi
.UNINDENT
.UNINDENT
.sp
给此密钥关联一些能力（也就是挂载 Ceph 文件系统的能力）：
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
ceph\-authtool \-n client.foo \-\-cap mds \(aqallow\(aq \-\-cap osd \(aqallow rw pool=data\(aq \-\-cap mon \(aqallow r\(aq keyring
.ft P
.fi
.UNINDENT
.UNINDENT
.sp
查看密钥环内容：
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
ceph\-authtool \-l keyring
.ft P
.fi
.UNINDENT
.UNINDENT
.sp
挂载 Ceph 文件系统时，你可以用此命令获取编码好的私钥：
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
mount \-t ceph serverhost:/ mountpoint \-o name=foo,secret=\(gaceph\-authtool \-p \-n client.foo keyring\(ga
.ft P
.fi
.UNINDENT
.UNINDENT
.SH 使用范围
.sp
\fBceph\-authtool\fP 是 Ceph 的一部分，这是个伸缩力强、开源、分布式的存储系统，更多信息参见 \fI\%https://docs.ceph.com\fP 。
.SH 参考
.sp
ceph(8)
.SH COPYRIGHT
2010-2014, Inktank Storage, Inc. and contributors. Licensed under Creative Commons Attribution Share Alike 3.0 (CC-BY-SA-3.0)
.\" Generated by docutils manpage writer.
.
